package com.isoft.c2team3service2.util;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

import java.util.Properties;

@Configuration
public class MailConfig {

/**
 * 配置JavaMailSender bean
 * 该方法用于设置邮件发送器，包括邮件服务器主机、端口、登录凭据以及必要的邮件属性
 * @return JavaMailSender实例，用于发送邮件
 */
@Bean
public JavaMailSender javaMailSender() {
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    // 设置邮件服务器主机
    mailSender.setHost("smtp.163.com");
    // 设置邮件服务器端口
    mailSender.setPort(25);
    // 设置发件人用户名
    mailSender.setUsername("15005923839@163.com");
    // 设置发件人密码
    mailSender.setPassword("YQgwhwG5pZUFBNN8");
    // 创建并设置JavaMail属性
    Properties props = new Properties();
    // 指定邮件传输协议
    props.put("mail.transport.protocol", "smtp");
    // 启用smtp身份验证
    props.put("mail.smtp.auth", "true");
    // 禁用SSL加密，可根据实际情况启用
    props.put("mail.smtp.ssl.enable", "false");
    // 设置受信任的SMTP主机
    props.put("mail.smtp.ssl.trust", "smtp.163.com");
    // 指定SSL套接字工厂类
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    // 指定SSL端口
    props.put("mail.smtp.socketFactory.port", "465");
    // 明确SMTP端口
    props.put("mail.smtp.port", "465");
    // 启用调试模式，可在控制台查看邮件发送过程的详细信息
    props.put("mail.debug", "true");

    // 将邮件属性设置到邮件发送器中
    mailSender.setJavaMailProperties(props);
    // 返回配置好的邮件发送器实例
    return mailSender;
}

}
